約 3,285,845 件
https://w.atwiki.jp/guru/pages/68.html
画像の種類ベクタ画像 (Vector Image) とは ラスタ (Laster Image) 画像とは 画像の構造色空間 (Color Space)RGB グレースケール (Gray Scale) その他の色空間 ビット深度 (Bit Deapth) 画像の種類 ※ 画像処理入門者は、「画像の種類」は読み飛ばして構いません。あんまり最初から小難しい話をするとイヤになるので。 コンピュータ上で扱う画像の形式には、ベクタ画像とラスタ画像の2種類がありますが、このサイトで扱う画像処理は、全てラスタ画像を対象としてます。 これ以降、単に「画像」と言った場合にはこのラスタ画像を指すものとします。 ベクタ画像 (Vector Image) とは 直線や曲線といった幾何情報をデータとして保持している形式です。 そのため、コンピュータ上で描かれたグラフィクスを保存するには向いていますが、カメラなどで撮影された複雑な風景画などを保存するには不向きです。 幾何情報を元に描画するため、拡大/縮小しても画像が乱れず綺麗に表示されるという特徴があります。 詳細はベクターイメージ (Wikipedia)を参照。 ラスタ (Laster Image) 画像とは 画像を細かい点の集まりとして保持している形式です。 bmp画像やjpg画像がこれに当たります。 詳細はラスターイメージ (Wikipedia)を参照。 画像の構造 一言で画像の構造と言っても、いろいろありますが、ここでは概念的な構造を示すことにします。 画像処理ライブラリを使う場合、ほとんどの場合はここで示す構造を理解していれば事足りるはずです。 まず、理解しやすいところから見ていきましょう。 下記に示す画像は、レナという、まぁ画像処理関連の論文を読んだことのある人にはお馴染みの画像です。 ※ 余談ですが、この元画像は、プレイボーイという雑誌から切り抜かれたポルノ画像です(レナ (Wikipedia)を参照)。 元はこんな画像だったようです(※ヌード画像注意)。 Fig. 1.1 画像の構造 ご覧のように、拡大すると、マス目上の色が敷き詰められていることが分かります(※ラスタ画像の特徴です)。 このマス目ひとつひとつをピクセル (Pixel) と呼んでいます。 この画像は横に256個のピクセル、縦に256個のピクセルが敷き詰められているため、大きさは 256×256 [pixel] などと言います。 色空間 (Color Space) RGB 一般的に、コンピュータ上で色を表すときはRGB色空間を用いることが多いです。 RGB色空間とは、それぞれ赤 (Red)、緑 (Green)、青 (Blue)の3つの成分を混ぜ合わせて色を表現する方法で、それぞれの成分の強さを数値で(座標で)指定することにより黄色や紫色など、様々な色を表現することができます。 この3色は光の3原色と呼ばれ、この混ぜ合わせによって人間の目が知覚できるほぼ全ての色を表現できます(厳密には全ての色ではありません)。 詳細はRGB (Wikipedia)を参照。 グレースケール (Gray Scale) また、画像処理を行う場合には、グレースケールを用いることが多いです。 グレースケールとは、白黒写真みたいなやつで、色情報を含んでおらず、白と黒の濃淡だけで画像を表現します。 グレースケールは厳密には色空間ではありませんが、今の段階では色空間の1種だと思っておいても問題ありません。 Fig. 1.2 グレースケール画像の色空間 Fig. 1.3 グレースケール画像の例 その他の色空間 色空間はRGBやグレースケールのみではなく、HSVやYCbCr、L*a*b*など様々なものがあります。 ここでは詳述しませんが、必要になったらその都度説明していきます。 詳細は色空間 (Wikipedia)を参照。 ビット深度 (Bit Deapth) 詳細はビット深度 (Wikipedia)を参照。
https://w.atwiki.jp/abwiki/pages/427.html
Const KOUDO = h1Const MEIDO = h2'a,b,cの最大値を戻すFunction max(a,b,c)If a b Then max = a Else max = bIf max c Then max = cEnd Function'a,b,cの最小値を戻すFunction min(a,b,c)If a b Then min = a Else min = bIf min c Then min = cEnd Function'RGBをモノクロにしてRGB値で返す(c=1,明度、c=2,光度 c=3のとき、平均)Function RGB24ToMonochro(rgb As DWord, c As Long) As DWordDim R As Byte, G As Byte, B As ByteR = rgb And hFFG = (rgb 8) And hFFB = (rgb 16) And hFFSelect Case cCase MEIDOrgb = 0.5 * (max(R,G,B) + min(R,G,B)) Case KOUDOrgb = 0.21 * R + 0.72 * G + 0.07 * BCase Elsergb = (R + G + B) / 3End SelectRGB24ToMonochro = RGB(rgb, rgb, rgb)End Function'RGB階調反転してRGB値で返すFunction RGB24NegaPosi(rgb As DWord) As DWordDim R As Byte, G As Byte, B As ByteR = rgb And hFFG = (rgb 8) And hFFB = (rgb 16) And hFFRGB24NegaPosi = RGB(255-R, 255-G, 255-B)End Function サンプル
https://w.atwiki.jp/baron/pages/34.html
import java.io.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.awt.geom.*; import javax.imageio.*; import javax.swing.*; public class AffineTest extends JPanel{ private double t = 0; private double dt = Math.toRadians(90); private BufferedImage img = null; public static void main(String[] args){ JFrame frame = new JFrame("アフィン変換テスト"); frame.getContentPane().add(new AffineTest()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400,400); frame.setVisible(true); } public AffineTest(){ try{ File file = new File("test.jpg"); img = ImageIO.read(file); addMouseListener(new MyMouse()); }catch(Exception e){} } class MyMouse extends MouseAdapter{ public void mouseClicked(MouseEvent e){ t += dt; repaint(); } } public void update(Graphics g){paint(g);} public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; AffineTransform a = AffineTransform.getRotateInstance( t , 180 , 50 ); g2.setTransform(a); g2.drawImage(img , 10 , 40 , this); } }
https://w.atwiki.jp/ktonegaw/pages/23.html
DXライブラリ置き場 http //homepage2.nifty.com/natupaji/DxLib/ SaveDrawScreen関連 http //hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past no=458 http //studiokingyo.fc2web.com/dxlib/kowaza/_22.html BMPファイルの読み書き・編集 http //www.h4.dion.ne.jp/~zero1341/win01/108.htm ビットマップの保存 http //eternalwindows.jp/graphics/bitmap/bitmap18.html raw形式からbmp形式への書き込み (画像処理) http //okwave.jp/qa4122072.html ビットマップファイルの書き込み http //son-son.sakura.ne.jp/programming/tips_1.html 画面をキャプチャして画像保存する方法 http //z800.blog.shinobi.jp/Category/13/ 「詳解 画像処理プログラミング 」サポートページ http //isbn.sbcr.jp/44370/ DirectX入門 http //wisdom.sakura.ne.jp/system/directx/index.html Direct3D Tips http //sorceryforce.com/programing/directx/direct3d.html Geekなページ http //www.geekpage.jp/ MSDNアカデミックアライアンス http //www.microsoft.com/japan/msdn/academic/Articles/ 0からのゲームプログラミング http //www.plustarnet.com/aspil/Programming/ 無料C++総合環境DirectXゲームプログラミング http //lacc.biz/cpp/cpp.html 物理のかぎしっぽ:コンピュータ関連の記事 http //www12.plala.or.jp/ksp/index.html 標準 Windows API http //wisdom.sakura.ne.jp/system/winapi/win32/index.html Windows API講座 http //www007.upp.so-net.ne.jp/hama_d/newapi/index.html Windows API Topics http //www.arcpit.co.jp/winapi/api_01/ WindowsAPI Programming http //yonex1.cis.ibaraki.ac.jp/Win32/ Win32API(C言語)編 トップページ http //www.geocities.jp/ky_webid/win32c/index.html C/C++/Windows API最新リンク2005 http //www2.famille.ne.jp/~akio1998/l_cpp.html ハイブリッド並列プログラミングによるMPEG2 エンコーダの高速化 http //www.hpc.se.ritsumei.ac.jp/papers/m06/ikegami.pdf 画像形式(静止画)のしくみ http //www.marguerite.jp/Nihongo/Labo/Image/index.html JPEGアルゴリズム http //www2.starcat.ne.jp/~fussy/algo/algo8-6.htm http //www2.starcat.ne.jp/~fussy/algo/algo8-7.htm
https://w.atwiki.jp/javadsge/pages/654.html
package delta; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; import javafx.scene.Group; import javafx.scene.shape.*; import static javafx.application.Application.launch; import javafx.scene.paint.Color; import javafx.scene.input.MouseEvent; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.canvas.Canvas; import javafx.scene.image.PixelReader; import javafx.scene.canvas.GraphicsContext; public class pro extends Application { Canvas cam; GraphicsContext gc; int[][] mr=new int[2000][2000]; int[][] mg=new int[2000][2000]; int[][] mb=new int[2000][2000]; public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { Image im = new Image("file neko.jpg"); int h=(int)im.getHeight(); int w=(int)im.getWidth(); ImageView imageView = new ImageView(); imageView.setImage(im); PixelReader reader = im.getPixelReader(); int mx,nx; for(mx=0;mx h;mx++){ for(nx=0;nx w;nx++){ Color col = reader.getColor(nx, mx); mr[mx][nx] =(int)(255*col.getRed()); mg[mx][nx] = (int)(255*col.getGreen()); mb[mx][nx] = (int)(255*col.getBlue()); } } cam = new Canvas(h,w); gc = cam.getGraphicsContext2D(); for(mx=0;mx 500;mx++){ for(nx=0;nx 500;nx++){ Color c = Color.rgb(mr[mx][nx],mg[mx][nx],mb[mx][nx]); gc.setFill(c); gc.fillRect(nx,mx,1,1); } } Group root = new Group(); Scene scene = new Scene(root, 700, 700); root.getChildren().add(cam); primaryStage.setTitle("グラフ"); primaryStage.setScene(scene); primaryStage.show(); } }
https://w.atwiki.jp/ce00582/pages/5325.html
import java.awt.*; import java.awt.event.*; class pro extends Frame{ int w; int h; int memor[][]=new int[1000][1000]; int memog[][]=new int[1000][1000]; int memob[][]=new int[1000][1000]; int mx,nx; String str; pro() { w=300; h=225; str="airi.jpg"; catchimg sub=new catchimg(); sub.makedata(str,w,h); memor=sub.memor; memog=sub.memog; memob=sub.memob; for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ memor[mx][nx]=f(memor[mx][nx]); memog[mx][nx]=f(memog[mx][nx]); memob[mx][nx]=f(memob[mx][nx]); } } } int f(int x){ int f1; f1=3*(x-100); if(f1 0)f1=0; if(f1 255)f1=255; return f1; } public static void main(String[] args) { pro f = new pro(); f.setSize(700,700); f.setBackground(Color.blue) ; f.setVisible(true); f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}}); } public void paint( Graphics g ) { int i,z,pp; g.setColor(Color.blue); g.fillRect(0,0,700,700); for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ g.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx])); g.fillRect(nx,mx,1,1); } } } }
https://w.atwiki.jp/suffix/pages/536.html
標本化 量子化 表色系 ヒストグラム フーリエ変換 オプティカルフロー エッジ強調 テンプレートマッチング 画像認識 動的輪郭法 ウェーブレット変換 KLT法・因子分解法 符号化 モザイキングについて 物体抽出 基本的な画像処理に関するアルゴリズム http //homepage2.nifty.com/tsugu/sotuken/ronbun/sec3-2.html ↓CG系 モデリング レンダリング 形状解析 2次元CG形式 追記: PTAMのソースコードが公開されているらしい。面白そう! Seam Carvingとかすごい!
https://w.atwiki.jp/book193/pages/34.html
なっとくする行列・ベクトル 今日から使える熱力学 OpenCVプログラミングブック ☆☆☆ OpenCV関係では唯一と思われる書籍
https://w.atwiki.jp/falconaf/pages/22.html
◇Falcon AF "THERE S A HUGE WAR GOING ON. SOMEONE PUT YOU IN CHARGE OF AN F-16." この一文はフライトシミュレーション"Falcon"シリーズが、一体どういうゲームなのかを端的に表しています。しかし我々は、これを「ゲーム」と呼ぶことについてはやや慎重な立場をとります。常連のFalcon 4.0のプレイヤーたちの要望に応え、この戦闘機シミュレータはかつてのいかなる家庭用パソコン向けの製品をも凌駕する先進的でそしてリアルなシュミレーションを実現しています。Battlefield Operations Falcon 4.0 Allied Force(以下Falcon AF)は、F-16という世界で最も重要な現代戦闘機のひとつを操縦しているのだ、という感覚を最も体感できるフライトシミュレータなのです。 F-16ファイティング・ファルコンは、パイロット達からヴァイパー(=蛇)と呼ばれ、アメリカ合衆国空軍と世界中のその同盟国で採用されている高性能戦闘機です。今日までの生産数は4,000を超えており湾岸戦争やバルカン半島での活躍が有名です。 Falcon AFでは、F-16の対空・対地戦闘ミッションでのリアルな操縦方法を学ぶことが可能であり、そしてリアルタイムで進行する戦闘の臨場感を体感することができます。このマニュアルはF-16を操縦するうえで遭遇するあらゆる状況を通してガイドを行うので、本書を読み終えたころにはコクピット内を熟知できているだけでなく、兵装システムの操作方法やハイテク化した戦場での戦闘の複雑さを身をもって理解できている筈です。 1
https://w.atwiki.jp/chugoku/pages/13.html
http //www40.atwi